using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("SocialToastMgr")]
	public class SocialToastMgr : MonoBehaviour
	{
		public enum TOAST_TYPE
		{
			DEFAULT,
			FRIEND_ONLINE,
			FRIEND_OFFLINE,
			FRIEND_INVITE,
			HEALTHY_GAMING,
			HEALTHY_GAMING_OVER_THRESHOLD,
			FRIEND_ARENA_COMPLETE,
			SPECTATOR_INVITE_SENT,
			SPECTATOR_INVITE_RECEIVED,
			SPECTATOR_ADDED,
			SPECTATOR_REMOVED,
			FIRESIDE_GATHERING_IS_HERE_REMINDER
		}

		[Attribute38("SocialToastMgr.ToastArgs")]
		public class ToastArgs : MonoClass
		{
			public string m_message => method_4("m_message");

			public float m_displayTime => method_2<float>("m_displayTime");

			public bool m_playSound => method_2<bool>("m_playSound");

			public ToastArgs(IntPtr address, string className)
				: base(address, className)
			{
			}

			public ToastArgs(IntPtr address)
				: this(address, "ToastArgs")
			{
			}
		}

		[Attribute38("SocialToastMgr.LastKnownMedalTracker")]
		public class LastKnownMedalTracker : MonoClass
		{
			public int m_standardRank => method_2<int>("m_standardRank");

			public int m_wildRank => method_2<int>("m_wildRank");

			public LastKnownMedalTracker(IntPtr address, string className)
				: base(address, className)
			{
			}

			public LastKnownMedalTracker(IntPtr address)
				: this(address, "LastKnownMedalTracker")
			{
			}
		}

		[Attribute38("SocialToastMgr.LastOnlineTracker")]
		public class LastOnlineTracker : MonoClass
		{
			public float m_localLastOnlineTime => method_2<float>("m_localLastOnlineTime");

			public LastOnlineTracker(IntPtr address, string className)
				: base(address, className)
			{
			}

			public LastOnlineTracker(IntPtr address)
				: this(address, "LastOnlineTracker")
			{
			}
		}

		public static float FADE_IN_TIME => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "SocialToastMgr", "FADE_IN_TIME");

		public static float FADE_OUT_TIME => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "SocialToastMgr", "FADE_OUT_TIME");

		public static float HOLD_TIME => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "SocialToastMgr", "HOLD_TIME");

		public static float SHUTDOWN_MESSAGE_TIME => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "SocialToastMgr", "SHUTDOWN_MESSAGE_TIME");

		public static float OFFLINE_TOAST_DELAY => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "SocialToastMgr", "OFFLINE_TOAST_DELAY");

		public static int MAX_QUEUE_CAPACITY => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "SocialToastMgr", "MAX_QUEUE_CAPACITY");

		public SocialToast m_defaultSocialToastPrefab => method_3<SocialToast>("m_defaultSocialToastPrefab");

		public SocialToast m_firesideGatheringSocialToastPrefab => method_3<SocialToast>("m_firesideGatheringSocialToastPrefab");

		public SocialToast m_defaultToast => method_3<SocialToast>("m_defaultToast");

		public SocialToast m_firesideGatheringToast => method_3<SocialToast>("m_firesideGatheringToast");

		public SocialToast m_currentToast => method_3<SocialToast>("m_currentToast");

		public bool m_toastIsShown => method_2<bool>("m_toastIsShown");

		public SocialToastMgr(IntPtr address, string className)
			: base(address, className)
		{
		}

		public SocialToastMgr(IntPtr address)
			: this(address, "SocialToastMgr")
		{
		}

		public static SocialToastMgr Get()
		{
			return MonoClass.smethod_15<SocialToastMgr>(TritonHs.MainAssemblyPath, "", "SocialToastMgr", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void Reset()
		{
			method_8("Reset");
		}

		public void AddToast(UserAttentionBlocker blocker, string textArg)
		{
			method_9("AddToast", new Class276.Enum20[2]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.String
			}, blocker, textArg);
		}

		public void AddToast(UserAttentionBlocker blocker, string textArg, TOAST_TYPE toastType)
		{
			method_9("AddToast", new Class276.Enum20[3]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.String,
				Class276.Enum20.ValueType
			}, blocker, textArg, toastType);
		}

		public void AddToast(UserAttentionBlocker blocker, string textArg, TOAST_TYPE toastType, bool playSound)
		{
			method_9("AddToast", new Class276.Enum20[4]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.String,
				Class276.Enum20.ValueType,
				Class276.Enum20.Boolean
			}, blocker, textArg, toastType, playSound);
		}

		public void AddToast(UserAttentionBlocker blocker, string textArg, TOAST_TYPE toastType, float displayTime)
		{
			method_9("AddToast", new Class276.Enum20[4]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.String,
				Class276.Enum20.ValueType,
				Class276.Enum20.R4
			}, blocker, textArg, toastType, displayTime);
		}

		public void AddToast(UserAttentionBlocker blocker, string textArg, TOAST_TYPE toastType, float displayTime, bool playSound)
		{
			method_9("AddToast", new Class276.Enum20[5]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.String,
				Class276.Enum20.ValueType,
				Class276.Enum20.R4,
				Class276.Enum20.Boolean
			}, blocker, textArg, toastType, displayTime, playSound);
		}

		public SocialToast GetSocialToastFromDesign(SocialToastDesign design)
		{
			return method_14<SocialToast>("GetSocialToastFromDesign", new object[1] { design });
		}

		public void FadeInToast()
		{
			method_8("FadeInToast");
		}

		public void FadeOutToast(float displayTime)
		{
			method_8("FadeOutToast", displayTime);
		}

		public void DeactivateToast()
		{
			method_8("DeactivateToast");
		}

		public void OnPlayersChanged(BnetPlayerChangelist changelist, object userData)
		{
			method_8("OnPlayersChanged", changelist, userData);
		}

		public void CheckForOnlineStatusChanged(BnetPlayer oldPlayer, BnetPlayer newPlayer)
		{
			method_8("CheckForOnlineStatusChanged", oldPlayer, newPlayer);
		}

		public void CheckSessionGameStarted(BnetPlayer player)
		{
			method_8("CheckSessionGameStarted", player);
		}

		public void CheckSessionRecordChanged(BnetPlayer player)
		{
			method_8("CheckSessionRecordChanged", player);
		}

		public void CheckForCardOpened(BnetGameAccount oldPlayerAccount, BnetGameAccount newPlayerAccount, BnetPlayer newPlayer)
		{
			method_8("CheckForCardOpened", oldPlayerAccount, newPlayerAccount, newPlayer);
		}

		public void CheckForNewRank(BnetPlayer player)
		{
			method_8("CheckForNewRank", player);
		}

		public void CheckForMissionComplete(BnetGameAccount oldPlayerAccount, BnetGameAccount newPlayerAccount, BnetPlayer newPlayer)
		{
			method_8("CheckForMissionComplete", oldPlayerAccount, newPlayerAccount, newPlayer);
		}

		public void CheckForMageLevelChanged(BnetGameAccount oldPlayerAccount, BnetGameAccount newPlayerAccount, BnetPlayer newPlayer)
		{
			method_8("CheckForMageLevelChanged", oldPlayerAccount, newPlayerAccount, newPlayer);
		}

		public void CheckForPaladinLevelChanged(BnetGameAccount oldPlayerAccount, BnetGameAccount newPlayerAccount, BnetPlayer newPlayer)
		{
			method_8("CheckForPaladinLevelChanged", oldPlayerAccount, newPlayerAccount, newPlayer);
		}

		public void CheckForDruidLevelChanged(BnetGameAccount oldPlayerAccount, BnetGameAccount newPlayerAccount, BnetPlayer newPlayer)
		{
			method_8("CheckForDruidLevelChanged", oldPlayerAccount, newPlayerAccount, newPlayer);
		}

		public void CheckForRogueLevelChanged(BnetGameAccount oldPlayerAccount, BnetGameAccount newPlayerAccount, BnetPlayer newPlayer)
		{
			method_8("CheckForRogueLevelChanged", oldPlayerAccount, newPlayerAccount, newPlayer);
		}

		public void CheckForHunterLevelChanged(BnetGameAccount oldPlayerAccount, BnetGameAccount newPlayerAccount, BnetPlayer newPlayer)
		{
			method_8("CheckForHunterLevelChanged", oldPlayerAccount, newPlayerAccount, newPlayer);
		}

		public void CheckForShamanLevelChanged(BnetGameAccount oldPlayerAccount, BnetGameAccount newPlayerAccount, BnetPlayer newPlayer)
		{
			method_8("CheckForShamanLevelChanged", oldPlayerAccount, newPlayerAccount, newPlayer);
		}

		public void CheckForWarriorLevelChanged(BnetGameAccount oldPlayerAccount, BnetGameAccount newPlayerAccount, BnetPlayer newPlayer)
		{
			method_8("CheckForWarriorLevelChanged", oldPlayerAccount, newPlayerAccount, newPlayer);
		}

		public void CheckForWarlockLevelChanged(BnetGameAccount oldPlayerAccount, BnetGameAccount newPlayerAccount, BnetPlayer newPlayer)
		{
			method_8("CheckForWarlockLevelChanged", oldPlayerAccount, newPlayerAccount, newPlayer);
		}

		public void CheckForPriestLevelChanged(BnetGameAccount oldPlayerAccount, BnetGameAccount newPlayerAccount, BnetPlayer newPlayer)
		{
			method_8("CheckForPriestLevelChanged", oldPlayerAccount, newPlayerAccount, newPlayer);
		}

		public bool ShouldToastThisLevel(int oldLevel, int newLevel)
		{
			return method_11<bool>("ShouldToastThisLevel", new object[2] { oldLevel, newLevel });
		}

		public void OnFriendsChanged(BnetFriendChangelist changelist, object userData)
		{
			method_8("OnFriendsChanged", changelist, userData);
		}

		public void ShutdownHandler(int minutes)
		{
			method_8("ShutdownHandler", minutes);
		}
	}
}
